package alya;

import java.util.Scanner;

public class Report {

    public static void main(String[] args) {

        //Задаем с клавиатуры количество кафедр для отчета
        int n = 0;
        Scanner sc = new Scanner(System.in, "cp1251");
        System.out.print("Уведіть кiлькiсть кафедр для звiту: ");
        n = sc.nextInt();
        System.out.println();

        //Создаем массив для хранения объектов, представляющих записи в отчете:
        TimeOfWork[] report = new TimeOfWork[n];

        //Наполняем массив данными:
        for (int i = 0; i < report.length; i++) {

            System.out.print("Уведiть назву кафедри (без пробiлiв): ");
            String k = sc.next();

            System.out.print("Уведiть кiлькiсть годин за планом: ");
            int p = sc.nextInt();

            System.out.print("Уведiть фактичну кiлькiсть годин: ");
            int f = sc.nextInt();

            report[i] = new TimeOfWork(k, p, f);
            System.out.println();
        }

        //Распечатываем шапку отчета:
        System.out.println("----------------------------------------"
                + "-------------------------------------------------");
        System.out.print("№ п/п  "
                + "|        Кафедра\t\t"
                + "|   Використання машинного часу\t"
                + "|  Вiдхилення вiд плану\t|\n");
        System.out.println("\t|\t\t\t|-------------------"
                + "-------------------------------------");
        System.out.println("\t|\t\t\t"
                + "|    за планом\t"
                + "|    фактично\t"
                + "|   у годинах\t"
                + "|  у %\t|");
        System.out.println("----------------------------------------"
                + "-------------------------------------------------");

        //Заносим записи в отчет:
        for (int i = 0; i < report.length; i++) {
            int number = i + 1;
            System.out.print("    " + number + "   | " + report[i].getK());

            if (report[i].getK().length() < 6) {
                System.out.print("\t\t\t");
            } else {
                if (report[i].getK().length() > 13) {
                    System.out.print("\t");
                } else {
                    System.out.print("\t\t");
                }
            }

            System.out.println("|    \t" + report[i].getP() + "\t"
                    + "|    \t" + report[i].getF() + "\t"
                    + "|    \t" + report[i].differenceInHours(
                                            report[i].getP(), report[i].getF())
                    + "  \t|" + report[i].differenceInPercentage(
                                            report[i].getP(), report[i].getF())
                    + "\t|");

            System.out.println("----------------------------------------"
                    + "-------------------------------------------------");
        }

        //Считаем итоги:
        int sumP = 0;
        int sumF = 0;
        for (int i = 0; i < report.length; i++) {
            sumP += report[i].getP();
            sumF += report[i].getF();
        }


        //Выводим суммирующую строку:

        System.out.println("\t|\tРазом\t\t"
                + "|    \t" + sumP + "    \t"
                + "|    \t" + sumF + "\t" + "|\t\t" + "|\t|");
        System.out.println("----------------------------------------"
                + "-------------------------------------------------");
    }
}
